Amazon Bedrockに新機能「Amazon Bedrock Knowledge Bases now supports RAG evaluation」「Amazon Bedrock Model Evaluation now includes LLM-as-a-judge」が誕生。 #AWSReinvent
こんにちは、せーのです。
今年もこの季節がやってきました。AWS Re:Invent 2024!!!!
クラメソチームは現地ラスベガスに100名以上を送り込む物量作戦で挑みます。
ということでせーのからの一発目のアップデートはAmazon Bedrockになります。
まずは「Amazon Bedrock Knowledge Bases now supports RAG evaluation」、そして「Amazon Bedrock Model Evaluation now includes LLM-as-a-judge」です。
両方ともまだpreview段階のほやほや新機能、果たしてどのようなものなのでしょうか?
Amazon Bedrock Knowledge Bases now supports RAG evaluation
最初は「Amazon Bedrock Knowledge Bases now supports RAG evaluation」です。
こちらはいわゆるRAG、つまり内部のデータソースを使った検索や自然言語応答のアプリケーションを評価する際にAmazon Bedrock Knowledge Basesが使えるようになった、というアップデートになります。
BedrockのおかげでRAGは実装まではかなりシステマチックに構成できるようになってきました。その一方で、作り上げたRAGシステムの精度がイマイチ使えない、という話はよく聞きます。
生成AIをはじめとする機械学習モデル、というのはデータが命です。例えばRAGシステムを作ったとして、そのデータソースとなるナレッジベースが貧弱だと、回答は深みが出なかったり、偏ったりします。
また、使用するLLMモデルとデータソースの相性という部分もあります。そういったナレッジベースを中心としたRAGシステムの評価を行える機能がこの「Amazon Bedrock Knowledge Bases now supports RAG evaluation」となります。
みてみよう
早速見てみたいと思います。Bedrockの「Inference and Assessment」に「evaluation」というリンクがあるのでクリックします。
「Knowledge Bases」というタブを選ぶとRAG evaluationが使えます。
まだナレッジベースがないので作ってみましょう。日本語のナレッジベースが評価できるのかも気になります。
bedrock RAGのブログに載っていた極低温冷凍機に関する特許PDFをS3にアップロードし、Bedrockのナレッジベースよりナレッジベースを作成していきます。
作成しました。と、ここに既に「Evaluate」のボタンがありますね。押してみます。
evaluationの作成画面に飛びました。名前をいれます。
Knowledge Base evaluation typeというのは、このRAGを検索のみに使うのか、検索結果をレスポンスさせるのか、という選択です。検索結果をレスポンスさせるのであれば、レスポンスさせるモデルもこの時点で選びます。
評価軸のメトリクスを選択するようです。とりあえずデフォルトで。
ここは結構ハマるところです。
まず評価用のデータセットを用意します。プロンプトと答えのセットであればJSONL形式がわかりやすいです。
また、ここはBedrockからS3へのアクセスがあるので、お作法に従ってCORSの設定がバケットに必要です。
その下は評価結果を格納するバケットです。ここはバケットだけではなく、キー名(フォルダ)も必要となります。
最後にロールを作成して完成です。
待ってる間に評価が進みます。大体5分前後(内容による)です。
やはりというか、評価用のデータセットの部分で読み取れていませんでした。日本語はまだのようです。
まとめ
日本語対応していないので業務に直接ぶつけるのはまだ先になりそうですが「RAGの評価」というのが自動化できることは未来が見えていいですね。いまのうちに、まずは英語で慣れておきましょう。